/*
 * @Author: Autism 2830207617@qq.com
 * @Date: 2025-11-17 14:41:50
 * @LastEditors: your name
 * @LastEditTime: 2025-11-18 14:50:58
 * @FilePath: \08_WiFi_MQTT_ALIYUN\main\APP\lwip_demo.h
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
/**
 ****************************************************************************************************
 * @file        udp.h
 * @author      正点原子团队(ALIENTEK)
 * @version     V1.0
 * @date        2023-08-26
 * @brief       LWIP实验
 * @license     Copyright (c) 2020-2032, 广州市星翼电子科技有限公司
 ****************************************************************************************************
 * @attention
 *
 * 实验平台:正点原子 ESP32-S3 开发板
 * 在线视频:www.yuanzige.com
 * 技术论坛:www.openedv.com
 * 公司网址:www.alientek.com
 * 购买地址:openedv.taobao.com
 *
 ****************************************************************************************************
 */

#ifndef __LWIP_DEMO_H
#define __LWIP_DEMO_H

//#include <string.h>
#include <sys/socket.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/event_groups.h"
#include "esp_wifi.h"
#include "esp_event.h"
#include "esp_log.h"
#include "lwip/apps/mqtt.h"
#include "lwip/dns.h"
#include "lwip/netdb.h"
#include "mqtt_client.h"
#include "lwip/sockets.h"
#include "lwip/dns.h"
#include "lwip/netdb.h"
#include "esp_log.h"
#include "mqtt_client.h"
#include "esp_netif.h"


// /* 用户需要根据设备信息完善以下宏定义中的三元组内容 */
// #define PRODUCT_KEY         "a1pvwMmlylK"                                                       /* ProductKey->阿里云颁发的产品唯一标识，11位长度的英文数字随机组合 */
// #define DEVICE_NAME         "dev_esp32s3"                                                       /* DeviceName->用户注册设备时生成的设备唯一编号，支持系统自动生成，也可支持用户添加自定义编号，产品维度内唯一  */
// #define DEVICE_SECRET       "0bd4dd8a6308e66f18d36f78ce75dd5f"                                  /* DeviceSecret->设备密钥，与DeviceName成对出现，可用于一机一密的认证方案  */
// /* MQTT地址与端口 */
// #define HOST_NAME           PRODUCT_KEY".iot-as-mqtt.cn-shanghai.aliyuncs.com"                  /* 阿里云域名 */
// #define HOST_PORT           1883                                                                /* 阿里云域名端口，固定1883 */


/* 使用公共MQTT测试服务器替代阿里云 */
#define HOST_NAME           "broker.emqx.io"            /* EMQX公共MQTT服务器 */
#define HOST_PORT           1883                        /* MQTT标准端口 */
// /* 根据三元组内容计算得出的数值 */
// #define CLIENT_ID           "122233|securemode=2,signmethod=hmacsha1,timestamp=1698818724940|"  /* 客户端ID */
// #define USER_NAME           DEVICE_NAME"&"PRODUCT_KEY                                           /* 客户端用户名 */
// #define PASSWORD            "92537B6A3F8CC0D2F1AD329A2F0BECECA6E2FC63"                          /* 由MQTT_Password工具计算得出的连接密码 */

/* 公共测试服务器不需要复杂的认证 */
#define CLIENT_ID           "esp32s3_client_001"        /* 自定义客户端ID */
#define USER_NAME           ""                          /* 用户名(空) */
#define PASSWORD            ""                          /* 密码(空) */

// /* 发布与订阅 */
// #define DEVICE_PUBLISH      "/"PRODUCT_KEY"/"DEVICE_NAME"/user/update"                          /* 发布 */
// #define DEVICE_SUBSCRIBE    "/"PRODUCT_KEY"/"DEVICE_NAME"/user/get"                             /* 订阅 */
/* 发布与订阅主题 - 使用自定义主题避免冲突 */
#define DEVICE_PUBLISH      "/alientek/esp32s3/update"  /* 发布主题 */
#define DEVICE_SUBSCRIBE    "/alientek/esp32s3/get"     /* 订阅主题 */

void lwip_demo(void);

#endif
